<?php

/**
 * 用户举报／反馈类
 *
 * @package    modules
 * @subpackage Center
 * @author     fuxiang <892576@gmail.com>
 */

namespace Center;

use Common\Bridge;

class UserReport
{
    /**
     * 表名
     */
    const CONTACT_TABLE_NAME = 'UserReport';


    private function __construct()
    {
    }

    /**
     * 新增用户反馈信息
     *
     * @param integer $userid   用户ID
     * @param integer $type     用户举报／反馈类型 [举报类型 0: 其他 1: 色情/暴力信息 2: 广告信息 3: 钓鱼/欺诈信息 4: 诽谤造谣信息  10: 用户反馈]
     * @param integer $itemid   举报／反馈目标ID
     * @param integer $itemtype 举报／反馈目标类型  [1:文章, 2:评论  ]
     * @param string  $contents 举报／反馈内容
     * @return bool
     */
    public static function addUserReport($userid, $type, $itemid, $itemtype, $contents)
    {
        if (empty($itemid) || empty($itemtype)) {
            return false;
        }
        $newdata = [
            'UserId' => intval($userid) ? intval($userid) : 0,
            'Type' => $type,
            'ItemId' => $itemid,
            'ItemType' => $itemtype,
            'Content' => $contents,
            'Status' => 1,
            'CreateTime' => date('Y-m-d H:i:s')
        ];
        $pdo = Bridge::pdo(Bridge::DB_CENTER_W);
        $flag = $pdo->insert(self::CONTACT_TABLE_NAME, $newdata);
        if ($flag > 0) {
            return true;
        }

        return false;
    }

    /**
     * 修改用户反馈信息
     *
     * @param integer $id   反馈信息ID
     * @param array   $info 用户举报／反馈类型需修改的数组数据，能修改的字段 ['Type', 'ItemType', 'Content', 'Status']
     * @return bool
     */
    public static function updateUserReport($id, $info = [])
    {
        if (empty($id)) {
            return false;
        }
        $data = [
            'Type' => 0,
            'ItemType' => 1,
            'Content' => '',
            'Status' => 1,
            'IsGood' => 0
        ];
        $newdata = array_intersect_key($info, $data);
        $pdo = Bridge::pdo(Bridge::DB_CENTER_W);
        $flag = $pdo->update(self::CONTACT_TABLE_NAME, $newdata, ['ReportId' => $id]);
        if ($flag !== false) {
            return true;
        }

        return false;
    }
}
